[小ネタ]ECSのCPUUtilizationとCPUUtilizedは同じ指標?
こんにちは!AWS事業本部のおつまみです。
みなさん、ECSのパフォーマンス監視やっていますか?
ECSにはCPUを表す指標としてCPUUtilizationとCPUUtilizedがあります。
「同じCPUを表す指標だけど、その違いって何だろう?」と疑問に思ったので、今回はその違いについてご紹介します。
いきなり結論
2つの指標を各観点でまとめると、以下の通りです。
指標名 | 単位 | 有効なディメンション | 確認方法 | 説明 |
---|---|---|---|---|
CPUUtilization | パーセンテージ | ClusterName、ServiceName | CloudWatchのAWS名前空間もしくはECSコンソール | クラスターやサービスで使用されている CPU の割合 |
CPUUtilized | CPUユニット | TaskDefinitionFamily、ClusterName
ServiceName、ClusterName ClusterName |
CloudWatchのカスタム名前空間 | 使用しているディメンションセットによって指定されるリソースのタスクにより使用されている CPU ユニット数 |
CPUUtilization
CPUUtilizationはCPUユニットの使用率をパーセンテージで表しています。
つまり、CPUUtilization=(実際に使用されているCPUユニット数)/(全体ユニット数)で表すことができます。
例えば現在100ユニットをクラスターに割り当てていて、そのうち30ユニットを使用している場合、CPUUtilizationは30%となります。
そして有効なディメンションはClusterName、ServiceNameとなっています。
CloudWatchのCloudWatchのAWS名前空間もしくはECSコンソールから確認することができます。
- CloudWatchのコンソール画面より
-
ECSのコンソール画面より
CPUUtilizationは、ECSクラスター・サービス単位でしかメトリクスが取得できません。
そのためタスクごとにCPU使用率を確認したい場合、後述するCPUUtilizedを使用します。
CPUUtilized
CPUUtilizedは使用しているCPUユニットの数を表しています。
有効なディメンションはTaskDefinitionFamily、ClusterName・ServiceName、ClusterName・ClusterNameClusterName、ServiceNameとなっています。
CloudWatchのCloudWatchのカスタム名前空間から確認することができます。
このメトリクスを使ってタスク単位でCPU使用率を表示させたい場合は、別途ロググループでのメトリクスフィルターの設定が必要です。
設定方法はこちらのブログをご参考ください。
まとめ
今回は、「CPUUtilization」と「CPUUtilized」のメトリクスについて、それぞれの指標の違いをご紹介しました。
ECSを使用する上で、パフォーマンス監視を行うことは非常に重要です。
ぜひ今回の内容を参考に、正しく監視を行っていただければ幸いです。
最後までお読みいただきありがとうございました!
以上、おつまみ(@AWS11077)でした!
参考
Amazon ECS CloudWatch メトリクス - Amazon Elastic Container Service Amazon ECS Container Insights メトリクス - Amazon CloudWatch